【Sqlserver系列】CAST和CONVERT的区别 |
您所在的位置:网站首页 › convert into和convert to的区别 › 【Sqlserver系列】CAST和CONVERT的区别 |
1 概述 本篇文章主要讲解SqlServer中类型转换涉及的两个函数:CAST和CONVERT。 2 具体内容 2.1 CAST (1)作用:将一种数据类型的表达式转换为另一种数据类型的表达式。 (2)定义: 1 CAST ( expression AS data_type)Parameters: expression:任何可转换为 data_type 的有效表达式; data_type:系统提供的目标数据类型。 该类型必须为基元(标量)类型。 使用的 data_type 取决于查询空间。 如果使用EntityCommand 执行查询,则数据类型为概念模型中定义的类型。 Return Value:: 返回与 data_type 相同的值。 (3)例子 SELECT CAST('2017' AS INT) --2017 SELECT CAST(2017 AS INT) --2017 SELECT CAST(2017.3 AS INT) --2017 SELECT CAST('2017.3' AS INT)--消息 245,级别 16,状态 1,第 1 行,在将 varchar 值 '2017.3' 转换成数据类型 int 时失败。 SELECT CAST('2017.3' AS decimal) --2017 SELECT CAST('2017.3' AS decimal(8,2)) --2017.302.2 CONVERT (1)作用:将一种数据类型的表达式转换为另一种数据类型的表达式。 (2)定义: 1 CONVERT ( data_type [ ( length ) ] , expression [ , style ] )Parameters: expression:任何有效的表达式; data_type:目标数据类型。这包括 xml、bigint 和 sql_variant。不能使用别名数据类型; length:指定目标数据类型长度的可选整数。默认值为 30; style:指定 CONVERT 函数如何转换 expression 的整数表达式。如果样式为 NULL,则返回 NULL。该范围是由 data_type 确定的。有关详细信息,请参阅“备注”部分; Return Value: 返回转换为 data_type 的 expression。 (3)例子 SELECT CONVERT(INT,'2017') --2017 SELECT CONVERT(INT,2017.3) --2017 SELECT CONVERT(INT,'2017.3') --消息 245,级别 16,状态 1,第 1 行,在将 varchar 值 '2017.3' 转换成数据类型 int 时失败。 SELECT CONVERT(decimal,'2017.3') --2017 SELECT CONVERT(decimal(8,2),'2017.3') --2017.30
2.3 CAST和CONVERT比较 (1)cast一般更容易使用,convert的优点是可以格式化日期和数值; (2)convert一般用于日期和时间值,小数之间转换,cast一般用于小数转数值和字符型; (3)converk显示转换,cast是强制转换; (4)例子 select CONVERT(varchar, getdate(), 120 ) --2017-08-13 03:56:14 select replace(replace(replace(CONVERT(varchar, getdate(), 120 ),'-',''),' ',''),':','') --20170813035627 select CONVERT(varchar(12) , getdate(), 111 ) --2017/08/13 select CONVERT(varchar(12) , getdate(), 112 ) --20170813 select CONVERT(varchar(12) , getdate(), 102 ) --2017.08.13 select CONVERT(varchar(12) , getdate(), 101 ) --08/13/2017 select CONVERT(varchar(12) , getdate(), 103 ) --13/08/2017 select CONVERT(varchar(12) , getdate(), 104 ) --13.08.2017 select CONVERT(varchar(12) , getdate(), 105 ) --13-08-2017 select CONVERT(varchar(12) , getdate(), 106 ) --13 08 2017 select CONVERT(varchar(12) , getdate(), 107 ) --08 13, 2017 select CONVERT(varchar(12) , getdate(), 108 ) --03:57:39 select CONVERT(varchar(12) , getdate(), 109 ) --08 13 2017 select CONVERT(varchar(12) , getdate(), 110 ) --08-13-2017 select CONVERT(varchar(12) , getdate(), 113 ) --13 08 2017 0 select CONVERT(varchar(12) , getdate(), 114 ) --03:58:08:200 select getdate() --2017-08-13 03:58:48.660 select convert(char(8),getdate(),112) --20170813 select convert(char(8),getdate(),108) --03:58:48 select convert(char(8),getdate(),112) --20170813参考表: 转载自:https://www.cnblogs.com/wangjiming/p/7352256.html |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |